<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//4. 阅读如下代码，分析输出，并说明为什么。
			let i = 6;//全局变量
			function f() {
			    let j = 10;
			    b();
			    c();
			    function b() {
			        let k = 88;
					//b函数被函数f调用时j为10，所以输出10
			        console.log(j); // 输出：10
					
					//b函数被调动，f函数中的j被重新赋值，赋值完为11
			        j = 11;
			    }
			    function c() {
					//c函数和b函数同级，两者同级的函数不得相互访问
					//c函数里的k访问不到b函数里k的值所以输出undefined
			        console.log(typeof k); // 输出：undefined
					
					//c函数中把i重新赋值为7
			        i = 7;
					
					//j在之前已经被重新赋值，所以输出11
			        console.log(j); // 输出：11
			    }
			}
			f();
			//调用f函数，i为全局变量，可以访问到
			console.log(i); // 输出：7
			
			//j变量没有在全局定义，所以访问不到j，所以显示没有被定义
			console.log(j); // 输出：没有被定义
		</script>
	</body>
</html>
